(1) Field of the Invention
This invention relates to communication network. More particularly, the invention relates to a clock synchronization system and method using a continuous conversion function for a communication network.
(2) Description of Prior Art
Clock synchronization is a general requirement in distributed systems where a plurality of nodes or computing units in different locations operate concurrently, and can be defined as the action of making different clocks to agree on a same time reading. Clock synchronization ensures that operations occur in the logically correct order, and it allows the establishment of causal implications between events in different computational units. Clock synchronization is particularly required in databases merging or gathering from a plurality of locations, global reporting of sorted time stamped data from a plurality of nodes, duration determination and performance analysis of processes distributed over a network, distributed processing requiring strict timing constraints (e.g., real time processing), time-of-day (distribution of time and date to stations) or other time distribution applications.
More particularly, within a communication network where nodes are exchanging data with each other using bidirectional communication lines, time synchronization is required for example when one wants to measure the delay of time between the occurrence of events in different nodes of the network, and also to determine accurately the error made on this measurement. In order to measure such a delay, each of the events must be dated with the same its own local clock which may slightly differ from the others (e.g., in frequency), there is a need for a clock synchronizing process to apply to the plurality of local clocks of the different nodes. Since this process is bound to make errors due to physical uncertainties, the clock synchronizing process has also to precisely estimate the error rate, and to minimize it.
Clock synchronization processes are typically implemented using hardware components or software components. Hardware implementations rely on a specific clock network for transmitting clocks signals in order to make one local clock dependent to the other, such that they indicate the same time with an acceptable error. Such specific clock network may include hardware circuits such as PLLs (phase-locked loops) to monitor and control the local clocks. On the other hand, software implementations typically consist in regularly adjusting the time values of the different local clocks, so that they all indicate the same time within a predetermined error interval. This adjustment is typically achieved by using an observation mechanism which calculates an offset to apply to the local clocks. Software implementations generally concern technical fields such as distributed processing, database systems and multiprocessing. Examples of software techniques well known in the art are the 4.3 BSD timed protocol from University of California, Berkeley, the Internet Network Time Protocol (NTP), the Digital Time Service (DTS) from Digital Equipment Corp. These foregoing techniques are briefly reviewed hereinafter.
The 4.3 BSD timed protocol is intended for use in local area networks (LANs). The BSD implementation uses a single master-time daemon named timed ("d" stands for daemon) which is running on a computer station called the master. Other stations connected to the network are referenced to as slaves. Slaves stations have to connect with the master daemon through the network and register on it, in such a way the master can monitor the offset between its own clock and the slaves' clock, and send to each slave the appropriate correction factor to apply to its clock. The Internet NTP protocol is intended to connect several primary reference sources to widely available locations such as gateways on the Internet. The Internet NTP protocol uses UDP (User Datagram Protocol) and relies upon sophisticated algorithms for electing time sources, and combining them in an accurate time. The Internet NTP protocol is based on a classical principle of messages exchange for monitoring the offset between a slave and a master and is considered as a variant of the so-called returnable-time system (RTS) used in some digital telephone networks. The Digital Time Service (DTS) addresses most of the objectives addressed by Internet NTP. Additionally DTS offers features for bounding the maximum errors inherent to the time-transfer procedures, and for supporting correctness principles.
Prior art software clock synchronization methods such as those cited above, typically rely on a clock adjustment process. One disadvantage of clock adjustment processes is not to guarantee the coherence of the local time at each node and induce corruption of time delay measurements. This corruption happens at each clock adjustment, whatever method is used for adjusting, and consequently introduce an error in a delay measurement between events occurring around the adjustment period. Furthermore, the error introduced by the adjustment process cannot be estimated since it depends on the process time required for adjusting the local clock, from the moment a new clock value is computed to the moment it is actually set in the clock. Another disadvantage of prior art software clock synchronization methods resides in that assessment of errors due to processing and transmission of master time information to slave station is computed statistically, based on master clock observations. As the error estimation is provided as a value within a confidence interval, applying a correction value based on such error estimation does not allow a precise correction.
U.S. Pat. No. 5,402,394 to Turski et al. issued Mar. 28, 1995 discloses a process for operating computing units in communication with each other by serial data transfer over data bus, each computing unit having its own clock generating system and the computing units exchanging timing information over the data bus. For this purpose, a time registration start signal is first fed into the data bus; thereupon, each computing unit stores its own time value upon identification of the time registration start signal, transfers the stored own time value at a later moment in time to the other computing units and stores the time values received from the other computing units. Each computing unit then compares its own stored time value with the stored time values of the other computing units and calculates the present time value of the other computing units taking into account its own present time value. Each computing node can thus ascertain the relationship between its local time and the local time bases of the other computing nodes, or a reference node, without having to adjust or correct the local time base.
The method disclosed in U.S. Pat. No. 5,402,394 solves the problem of delay measurement corruption by avoiding adjusting a local time base to a reference time base. However, there is not provided any error estimation method.
The present invention addresses the above-defined problems of the prior art by providing a clock synchronization method that avoids adjusting a local time base to a reference time base, by relying on analyzing the evolution of the offset between two clocks, in order to regularly compute parameters necessary for elaborating a continuous conversion function. The conversion function is further used for converting time values of one clock time base to the other, such that the conversion function provides accurate converted time values with a pre-determined precision.